import axios from "axios";
import "nprogress/nprogress.css";
import NProgress from "nprogress";
import { getToken, serverUrl } from './tools';
const instance = axios.create({
  baseURL: serverUrl, //网络请求的基础地址
  timeout: 5000, //超时时间
});

//全局请求拦截   发起网络请求之前执行
instance.interceptors.request.use(
  function(config) {
    config.headers["token"] = getToken(); //每次发请求之前传递一个token数据
    NProgress.start(); //开启进度条
    return config;
  },
  function(error) {
    return Promise.reject(error);
  }
);
//全局响应拦截  网络请求成功之后执行
instance.interceptors.response.use(
  function(response) {
    NProgress.done(); //清除进度条
    return response.data; //把真实的返回数据 直接输出
  },
  function(error) {
    NProgress.done();
    return Promise.reject(error);
  }
);

/**
 *  get 请求
 * @param {*} url  请求地址
 * @param {*} params  url中的传递参数
 * @returns
 */
export const get = (url, params) => instance.get(url, { params });

/**
 *  post 请求
 * @param {*} url  地址
 * @param {*} data  数据
 * @returns
 */
export const post = (url, data) => instance.post(url, data);

/**
 *  put 请求  修改数据
 * @param {*} url  地址
 * @param {*} data  数据
 * @returns
 */
export const put = (url, data) => instance.put(url, data);

/**
 * delete请求   删除数据
 * @param {*} url  地址
 * @returns
 */
export const del = (url) => instance.delete(url);
